home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / basic3 / pro5 / tictacto.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1990-01-01  |  3.4 KB  |  105 lines

  1. 1  REM<UNK! {0009}>3-D TIC-TAC- TO E
  2. 2  REM  BY BRIAN FAWCETT
  3. 3  REM<UNK! {0009}>    (C)1984
  4. 5  WIDTH 40:KEY OFF:COLOR 15,0,0:C=8:R=14:XO=88:CL=9:N=1:DIM L(147)
  5. 10  CLS:LOCATE 1,13:COLOR 0,7:PRINT "3-D TIC-TAC-TOE":COLOR 4:LOCATE 2,13:PRINT "BY BRIAN FAWCETT":COLOR 15,0:PRINT:PRINT
  6. 20  PRINT:PRINT "   X  ENTER PLAYER NUMBER 1";:INPUT N$(1):IF LEN(N$(1))>18 THEN 20
  7. 30  PRINT:PRINT "   O  ENTER PLAYER NUMBER 2";:INPUT N$(2):IF LEN(N$(2))>18 THEN 30
  8. 35  FOR X=1 TO 147:READ L(X):NEXT
  9. 40  CLS:LOCATE 1,13:COLOR 0,7:PRINT "3-D TIC-TAC-TOE":COLOR 15,0
  10. 50  PRINT:PRINT:COLOR 4:PRINT "      _________"
  11. 60  PRINT "     /  /  /  /"
  12. 70  PRINT "    /--/--/--/"
  13. 80  PRINT "   /  /  /  /"
  14. 90  PRINT "  /--/--/--/"
  15. 100  PRINT " /  /  /  /"
  16. 110  PRINT " ---------"
  17. 120  COLOR 15:PRINT "      _________"
  18. 130  PRINT "     /  /  /  /"
  19. 140  PRINT "    /--/--/--/"
  20. 150  PRINT "   /  /  /  /"
  21. 160  PRINT "  /--/--/--/"
  22. 170  PRINT " /  /  /  /"
  23. 180  PRINT " ---------
  24. 190  COLOR 1:PRINT "      _________"
  25. 200  PRINT "     /  /  /  /"
  26. 210  PRINT "    /--/--/--/"
  27. 220  PRINT "   /  /  /  /"
  28. 230  PRINT "  /--/--/--/"
  29. 240  PRINT " /  /  /  /"
  30. 250  PRINT " ---------";
  31. 280  COLOR 7:LOCATE 8,24:PRINT "USE THESE KEYS"
  32. 290  LOCATE 9,23:PRINT "TO CONTROL"
  33. 300  LOCATE 10,22:PRINT "YOUR GAME PIECE."
  34. 310  LOCATE 12,31:PRINT CHR$(24)
  35. 320  LOCATE 13,30:PRINT CHR$(27);" ";CHR$(26)
  36. 330  LOCATE 14,31:PRINT CHR$(25)
  37. 340  LOCATE 15,30:PRINT "Home"
  38. 350  LOCATE 17,21:PRINT "                  ":BF=2
  39. 355  COLOR CL:LOCATE 17,21:PRINT N$(N)",":LR=2
  40. 360  LOCATE 18,21:PRINT "IT'S YOUR MOVE.":UD=2
  41. 365  LOCATE 20,19:PRINT "HIT <RETURN> TO MAKE"
  42. 366  LOCATE 21,18:PRINT "YOUR MOVE"
  43. 370  LOCATE R,C,0:COLOR 16,CL:PRINT CHR$(XO)
  44. 380  D$=INKEY$:IF D$=CHR$(13) THEN 570
  45. 383  IF LEN(D$)<2 THEN 370
  46. 385  D$=RIGHT$(D$,1)
  47. 390  IF ASC(D$)=72 THEN BF=BF+1:GOTO 460:REM BWD
  48. 400  IF ASC(D$)=75 THEN LR=LR+1:GOTO 480:REM LEFT
  49. 410  IF ASC(D$)=77 THEN LR=LR-1:GOTO 500:REM RIGHT
  50. 420  IF ASC(D$)=80 THEN BF=BF-1:GOTO 520:REM FWD
  51. 430  IF ASC(D$)=71 THEN UD=UD+1:GOTO 540:REM DOWN
  52. 450  GOTO 370
  53. 460  LOCATE R,C:COLOR 0,0:PRINT" "
  54. 470  C=C+2:R=R-2:IF BF>3 THEN BF=3:C=C-2:R=R+2
  55. 475  GOTO 370
  56. 480  LOCATE R,C:COLOR 0,0:PRINT" "
  57. 490  C=C-3:IF LR>3 THEN LR=3:C=C+3
  58. 495  GOTO 370
  59. 500  LOCATE R,C:COLOR 0,0:PRINT" "
  60. 510  C=C+3:IF LR<1 THEN LR=1:C=C-3
  61. 515  GOTO 370
  62. 520  LOCATE R,C:COLOR 0,0:PRINT" "
  63. 530  C=C-2:R=R+2:IF BF<1 THEN BF=1:C=C+2:R=R-2
  64. 535  GOTO 370
  65. 540  LOCATE R,C:COLOR 0,0:PRINT" "
  66. 550  R=R+7:IF BF=3 AND UD>3 THEN UD=1:R=5
  67. 555  IF BF=2 AND UD>3 THEN UD=1:R=7
  68. 560  IF BF=1 AND UD>3 THEN UD=1:R=9
  69. 565  GOTO 370
  70. 570  IF (SCREEN(R,C+1)=88) OR (SCREEN(R,C+1)=79) THEN 370
  71. 580  LOCATE R,C:COLOR 0,0:PRINT" "
  72. 590  LOCATE R,C+1:COLOR CL:PRINTCHR$(XO)
  73. 600  X=1:Y=2:Z=3:CA=0
  74. 604  R1=INT(L(X)/40):R2=INT(L(Y)/40):R3=INT(L(Z)/40):C1=(L(X) MOD 40):C2=(L(Y) MOD 40):C3=(L(Z) MOD 40)
  75. 610  IF (SCREEN(R1,C1)=XO)AND (SCREEN(R2,C2)=XO)AND(SCREEN(R3,C3)=XO) THEN 650
  76. 620  X=X+3:Y=Y+3:Z=Z+3:IF Z<148 THEN 604
  77. 623  CA=CA+1:R1=INT(L(CA)/40):C1=(L(CA) MOD 40):IF SCREEN(R1,C1)=32 THEN 630
  78. 625  IF CA<>29 THEN 623
  79. 627  COLOR 15,0:LOCATE 17,21:PRINT "   CAT'S GAME      ":LOCATE 18,21:PRINT SPACE$(16):LOCATE 20,19:PRINT SPACE$(21):GOTO 680
  80. 630  IF XO=88 THEN XO=79:C=8:R=14:CL=12:N=2:GOTO 350
  81. 640  IF XO=79 THEN XO=88:C=8:R=14:CL=9:N=1:GOTO 350
  82. 650  LOCATE 17,18:COLOR 15:PRINT N$(N);" HAS WON!":LOCATE 18,21:PRINT SPACE$(16):LOCATE 20,19:PRINT SPACE$(21):LOCATE 21,18:PRINTSPACE$(20)
  83. 660  LOCATE R1,C1:COLOR CL+16:PRINT CHR$(XO):LOCATE R2,C2:PRINT CHR$(XO):LOCATE R3,C3,0:PRINT CHR$(XO):COLOR 15,0
  84. 670  FOR X=1 TO 5000:NEXT
  85. 680  LOCATE 21,18:PRINT "ANOTHER GAME (Y/N)";:INPUT A$
  86. 690  IF (A$="Y")OR(A$="y") THEN RUN
  87. 695  CLS:RUN"FILES.BAS"
  88. 700  DATA 208,211,214,286,289,292,364,367,370
  89. 710  DATA 488,491,494,566,569,572,644,647,650
  90. 720  DATA 768,771,774,846,849,852,924,927,930
  91. 730  DATA 208,286,364,211,289,367,214,292,370
  92. 740  DATA 488,566,644,491,569,647,494,572,650
  93. 750  DATA 768,846,924,771,849,927,774,852,930
  94. 760  DATA 208,289,370,364,289,214,488,569,650
  95. 770  DATA 644,569,494,768,849,930,924,849,774
  96. 780  DATA 208,488,768,211,491,771,214,494,774
  97. 790  DATA 286,566,846,289,569,849,292,572,852
  98. 800  DATA 364,644,924,367,647,927,370,650,930
  99. 810  DATA 208,491,774,208,569,930,208,566,924
  100. 820  DATA 211,569,927,214,491,768,214,572,930
  101. 830  DATA 214,569,924,286,569,852,292,569,846
  102. 840  DATA 364,566,768,364,569,774,364,647,930
  103. 850  DATA 367,569,771,370,647,924,370,572,774
  104. 860  DATA 370,569,768
  105.